object okok4 {
  def main(args: Array[String]): Unit = {
    val person = new PersonT("jack")
    person.showInfo()
  }
}
/**
 *
 *  定义了⼀个
 *  PersonT
 *  类
 * PersonT
 *  有⼏个构造器
 *  ?
 *  四个
 */
class PersonT private() {
  var name: String = _
  var age: Int = _

  def this(name: String) {
    // 辅助构造器 ⽆ 论是直接或间接 ，最终都 ⼀ 定要调 ⽤ 主构造器 ，执 ⾏ 主构造器的逻辑
    // ⽽ 且需要放在辅助构造器的第 ⼀⾏
    // [ 这点和java ⼀ 样 ，java中 ⼀ 个构造器要调 ⽤ 同类的其它构造器，也需要放在第 ⼀⾏]
    this () //直接调 ⽤ 主构造器
    this.name = name
  }
  // 辅助构造器

  def this(name: String, age: Int) {
    this() //直接调 ⽤ 主构造器
    this.name = name
    this.age = age
  }

  def this(age: Int) {
    this(" 匿名") // 调 ⽤ 主构造器, 因为def this(name: String) 中调 ⽤ 了主构造器 !
      this.age = age
  }

  def showInfo(): Unit = {
    println("PersonT信息如: ")
      println ("name=" + this.name)
      println ("age=" + this.age)
  }
}

